 PAG
**********************************
* EQU1
**********************************

* ERROR NUMBERS

INVCOM = $01 ;INVALID COMMAND
NOADRS = $02 ;ADDRESS EXPECTED
NUMEXP = $03 ;NUMBER EXPECTED
BADPAR = $04 ;BAD COMMAND PARAMTERS

BRKFUL = $10 ;NO ROOM FOR ADDITIONAL BREAKPOINTS

WRITFAIL = $20 ;write failure

BADRT = $30 ;RT or T range JSL while in 8 bit mode


*----------------------------------------
* ADDRESSING MODES

*MODE NUMBER BYTES SYMBOL ADDRESS
AM_IMD = $0 ;2-3   #      IMED
AM_ABS = $1 ;3     a      ABS
AM_ABSL = $2 ;4     al     ABS.L
AM_DIR = $3 ;2     d      DIR
AM_IMP = $4 ;1   i or S   ACC;IMP;STK
AM_DIX = $5 ;2   (d),y    DIR.IND.INX
AM_DILX = $6 ;2   [d],y    DIR.IND.L.INX
AM_DXI = $7 ;2   (d,x)    DIR.INX.IND
AM_DXX = $8 ;2    d,x     DIR.INX.W/X
AM_DXY = $9 ;2    d,y     DIR.INX.W/Y
AM_AXX = $A ;3    a,x     ABS.INX.W/X
AM_ALXX = $B ;4    al,x    ABS.L.INX.W/X
AM_AXY = $C ;3    a,y     ABS.INX.W/Y
AM_REL = $D ;2     r      P.C.REL
AM_RELL = $E ;3     rl     P.C.REL.L
AM_AI = $F ;3    (a)     ABS.IND.
AM_AIL = $10 ;3    [a]     ABS.IND.L
AM_DI = $11 ;2    (d)     DIR.IND.
AM_DIL = $12 ;2    [d]     DIR.IND.L
AM_AXI = $13 ;3   (a,x)    ABS.INX.IND
AM_SR = $14 ;2    d,s     STK.REL
AM_SRIX = $15 ;2   (d,s),y  STK.REL.IND.INX
AM_S = $16 ;2     s      STK
AM_XYZ = $17 ;3    b,b     XYZ
AM_IMD2 = $18 ;2     #      IMED 2 bytes only (SEP,REP)
AM_A_NE = $19 ;3     a      JMP & JSR no effective address

* ZERO PAGE USAGE

Z1LO EQU $20
Z1HI EQU $21
Z2LO EQU $22
Z2HI EQU $23
ZBUF5 EQU $24
ZBUF6 EQU $25
BASL EQU $28
BASH EQU $29
BAS2L EQU $2A
BAS2H EQU $2B
CSWL EQU $36 ;ADDRESS OF OUTPUT ROUTINE STORED HERE.
CSWH EQU $37
KSWL EQU $38 ;ADDRESS OF INPUT ROUTINE STORED HERE.
KSWH EQU $39

BRKVECLO EQU $0003F0 ;BREAK VECTOR OF AUTOSTART ROM
BRKVECHI EQU $0003F1 ;" " " "
NMILOC EQU $0003FB ;APPLE'S NMI VECTOR
CNSLOT EQU $0007F8 ;LAST ACTIVE PERIPHERAL CARD $CN FORM


********** SOFT SWITCHES **********

CXON EQU $E0C007 ;CXROM ON SWITCH
SLOTROM EQU $E0C006 ;CXROM OFF SWITCH
CXFLAG EQU $E0C015 ;CXROM STATUS FLAG

KBD EQU $E0C000 ;KEYBOARD DATA
KBDSTRB EQU $E0C010 ;CLEAR KEYBOARD STROBE
SPKR EQU $E0C030 ;SPEAKER

STR80OFF EQU $E0C000 ;WRITE, ALLOW TXTPAGE1 TO SWITCH PAGE1/PAGE2
STR80ON EQU $E0C001 ;WRITE, ALLOW TXTPAGE1 TO SWITCH MAIN/AUX
STORE80 EQU $E0C018 ;READ

READMAIN EQU $E0C002 ;READ FROM MAIN MEM (WRITE)
READAUX EQU $E0C003 ;READ FROM AUX MEM (WRITE)
RAMRD EQU $E0C013 ;READ

WRITMAIN EQU $E0C004 ;WRITE TO MAIN MEM (WRITE)
WRITAUX EQU $E0C005 ;WRITE TO AUX MEM (WRITE)
RAMWRT EQU $E0C014 ;READ

MAINZP EQU $E0C008 ;MAIN STACK & ZP (WRITE)
AUXZP EQU $E0C009 ;AUX STACK & ZP (WRITE)
ALTZP EQU $E0C016 ;READ

COL80OFF EQU $E0C00C ;80 COL DISPLAY OFF
COL80ON EQU $E0C00D ;80 COL DISPLAY ON
RD80VID EQU $E0C01F ;BIT 7 = 1 FOR 80 COL, 0 FOR 40 COL

ALTCHOFF EQU $E0C00E ;WRITE, TURN OFF ALT CHAR SET
ALTCHON EQU $E0C00F ;WRITE, TURN ON ALT CHAR SET
ALTCHAR EQU $E0C01E ;READ

TEXTOFF EQU $E0C050 ;TEXT MODE OFF
TEXTON EQU $E0C051 ;TEXT MODE ON
TEXT EQU $E0C01A ;Read TEXT switch

MIXEDOFF EQU $E0C052 ;ALL TEXT OR GRAPHICS
MIXEDON EQU $E0C053 ;R/W, MIXED TEXT AND GRAPHICS IF GRAPHICS ON
MIXED EQU $E0C01B ;Read MIXED switch

TXTPAGE1 EQU $E0C054 ;TALK TO MAIN TEXT RAM
TXTPAGE2 EQU $E0C055 ;TALK TO AUX TEXT RAM
PAGE2 EQU $E0C01C ;Read PAGE2 switch

HIRESOFF EQU $E0C056 ;HIRES MODE OFF
HIRESON EQU $E0C057 ;HIRES MODE ON
HIRESFLG EQU $E0C01D ;Read HIRES switch

TEXTCOLR EQU $E0C022 ;Text color
SUPERHR EQU $E0C029 ;Bit 7=1 Super, 6=1 Linear video
SHADOW EQU $E0C035 ;Bit 3=1 no shadowing 32k video buffer
SPEEDreg EQU $E0C036 ;Speed register Bit 7=1 for Hi speed

GS_STATE EQU $E0C068 ;GS state register

**************************************************
* VECTORS

COUT1APL EQU $FDF0 ;USED TO RESTORE CSW IF EXT2 ENTERED WITH PR#N
MONITOR EQU $00FF69 ;APPLE MONITOR ENTRY POINT

* ASCII CODES

EOT EQU $84 ;ASCII code for EOT
BEL EQU $87 ;ASCII BELL code
UPARROW EQU $8B ;Apple key code
DNARROW EQU $8A ;Apple key code
RTARROW EQU $95 ;Apple key code
LTARROW EQU $88 ;Apple key code
CR EQU $8D ;ASCII carriage return
LF EQU $8A ;ASCII line feed
CTRLX EQU $98 ;ASCII control-X
CTRLS EQU $93 ;ASCII control-S
ESC EQU $9B ;ASCII escape code
DELETE EQU $FF ;Apple key code

* SUPER SERIAL CARD LOCATIONS FOR SLOT #2

SSCSTAT EQU $E0C0A9
SSCDATA EQU $E0C0A8
SSCCONT EQU $E0C0AB
SSCDIPS1 EQU $E0C0A1
SSCDIPS2 EQU $E0C0A2
SSCCOMAN EQU $E0C0AA

* VIA BASE ADDRESSES

VIAORB EQU $E0C810 ;ADDRESS ORB
VIAORA EQU $E0C801 ;ADDRESS ORA
VIADRB EQU $E0C802 ;ADDRESS DRB
VIADRA EQU $E0C803 ;BASE ADDRESS DRA
VIAT1CL EQU $E0C804 ;VIA TIMER 1
VIAT1CH EQU $E0C805 ;VIA TIMER 1
VIAT1LL EQU $E0C806 ;VIA TIMER 1 LATCH LOW
VIAT1LH EQU $E0C807 ;VIA TIMER 1 LATCH HI
VIAT2CL EQU $E0C808 ;VIA TIMER 2
VIAT2CH EQU $E0C809 ;VIA TIMER 2
VIASR EQU $E0C80A
VIAACR EQU $E0C80B
VIAPCR EQU $E0C80C
VIAIFR EQU $E0C80D ;VIA INTERRUPT FLAG REGISTER
VIAIER EQU $E0C80E ;VIA INTERRUPT ENABLE REGISTER
VIAORAN EQU $E0C80F

SEGMBASE EQU $E0C088 ;BASE ADDRESS OF CARD SLOT I/O SPACE.

**********************************
* Two numbers will work for counter values when in 8 bit mode.
* Only the smaller of the two will work when in 16 bit mode.
* Make sure to use the smaller number.
* The counter value is determined by adding the execution times
* of all instructions executed following STZ VIAT1CH in TOEXECUT,
* including the instructions in the slotIO routine, then subtract 3.
* NMI occurs NMICOUNT+1.5 clock cycles after started.
* The GS MUST be running at 1 Mhz speed.
**********************************

NMICOUNT EQU $29

* START ONBOARD RAM

**************************************************
* Keep these locations in the same order if possible, so they can
* be published for the user's own use.
**************************************************

 DUM $E0C811

ACC DS 2 ;ACCUMULATOR
XREG DS 2 ;X REGISTER
YREG DS 2 ;Y REGISTER
STACK DS 2 ;STACK POINTER
DREG DS 2 ;DIRECT REGISTER
DBR DS 1 ;DATA BANK REGISTER
MSTATE DS 1 ;MACHINE STATE
QREG DS 1 ;SHADOW AND SPEED STATE (Quagmire)
STATUS DS 1 ;STATUS REGISTER
PCLO DS 1 ;PROGRAM COUNTER LOW BYTE
PCHI DS 1 ;PROGRAM COUNTER HI BYTE
PBR DS 1 ;65816 PBR REGISTER
INVISIBL DS 1 ;0=NORMAL, NEGATIVE= INVISIBLE
CMOSFLAG DS 1 ;0=6502, BIT 7=1=65C02, BIT 6=1=65816
* SET OFFFLAG TO $80 IF I/O IS SLOT1 OR SERIAL
IOMODE DS 1 ;0=NORMAL, BIT 7=1=SERIAL, BIT 6=1=SLOT1
OFFFLAG DS 1 ;>$80= DON'T DISPLAY TO SCREEN
STRT2FLG DS 1 ;BIT 7 1=NORMAL ENTRY, 0=DO RTS AFTER INIT
*************** END ********************

TOSLOT DS 1 ;use JMP (TOSLOT) to goto slot routines
SLOTCN DS 1 ;SAVE SLOT # $CN
SLOTN0 DS 1 ;SLOT # FORMAT N0
ADDHI DS 1 ;CURRENT BREAKPOINT ADDRESS BUFFER HI BYTE
ADDLOW DS 1 ;" " " " " LO BYTE
ZBYTE1 DS 1
ZBYTE2 DS 1
ZBYTE3 DS 1

****************************************
** DATABRK - SBTYPE must remain together because of update **
DATABRK DS 1 ;DATA FROM BREAKPOINT
LETTER1 DS 1 ;USED IN COMMAND FIND
LETTER2 DS 1 ; " "
LETTER3 DS 1 ; USED IN SEG3 COMDMA
LETTER4 DS 1
LETTER5 DS 1
LETTER6 DS 1
LETTER7 DS 1 ; used for Conditional BRK
LETTER8 DS 1 ; used for Conditional BRK
SBTYPE DS 1 ;BREAK TYPE R, I OR C
***************** END ******************

DECIMAL1 DS 1 ;USED TO CONVERT
DECIMAL2 DS 1 ;LETTER 1,2,3 FROM
DECIMAL3 DS 1 ;DECIMAL TO HEX

DBRDDT DS 1 ;BANK TO USE FOR STAINDY & LDAINDY
MEMLOW DS 1 ;MEMORY POINTERS USED BY
MEMHI DS 1 ; MM, MD, LI COMMANDS

USEROPCD DS 1 ;USER'S OPCODE, USED BY STACKSAV
OPCODE DS 1 ;USED IN SEG3
MLIFLAG DS 1 ;0=MLI WAS DISASSEMBLED
P16FLAG DS 1 ;0=P16 was disassembled
IERBUFF DS 1 ;VIAIER FLAGS

*ENABLT VECTOR. NMI HANDLER (JUMPS) TO THIS LOCATION IF
* TRACE CAUSED THE NMI.
ENABLTVC DS 2
STOPBRK DS 1 ;<$80=STOP AT BRK WHEN TOGOFLG=0,>$7F=DON'T STOP
YBUFF DS 1 ;TEMP STORAGE FOR Y BUF
YBUF2 DS 1 ;USED BY TOCOUT
XBUFF DS 1 ;TEMP STORAGE FOR X BUF
SUBTRACE DS 3 ;LOCATION OF SUBROUTINE FOR TRACE
SEGMCODE DS 1 ;CONTAINS CODED INFO ON WHERE TO TRANSFER

*STORE Z PAGE LOCATIONS THAT MIGHT BE DISTURBED BY
* DDT I/O ROUTINES.
ZPAGEXT DS $C

RTSTACK DS 2 ;save stack for use by realtime
RTOPCODE DS 1 ;save opcode replaced by realtime brk
RTJSRFLG DS 1 ;save JSR/JSL info

OLDSTACK DS 2 ;save stack during TRACEN
OLDMSTAT DS 1 ;save mstate during TRACEN

*THE FOLLOWING LOCATIONS ARE USED ONLY DURING
* A SEGMENT CROSSOVER
ASAVESEG DS 2 ;SAVE ACC
XSAVESEG DS 2 ;SAVE X
YSAVESEG DS 2 ;SAVE Y
PSAVESEG DS 1 ;SAVE P

ADDRBUFF DS 3 ;ADDRESS BUFFER
CSWLBUTT DS 1 ;USED IF BUTTON IS PRESSED
CSWHBUTT DS 1
KSWLBUTT DS 1
KSWHBUTT DS 1

* USED BY CALCTIME
ETIERSAV DS 1
ETORASAV DS 1
ETORBSAV DS 1
ETPCLO DS 1
ETPCHI DS 1

OPERAND DS 2 ;USED IN MINI ASSEMBLER TO STORE OPERAND
INITFLAG DS 1 ;INDICATES THE USER PROGRAM HAS BEEN EXECUTED
INTCXSOT DS 1 ;USED TO SAVE THE STATUS OF THE IIE'S CX ROM

INDY80S DS 1 ;INDY SAVES 80STORE FLAG HERE
INDYBUF DS 1 ;INDY SAVES ZP FLAG HERE

RAMRDBF DS 1 ;**
RAMWRTBF DS 1 ;** MUST BE CONSECUTIVE
ALTZPBF DS 1 ;SAVE ALTZP SWITCH

DTOHFLG DS 1 ;DEC TO HEX FLAG >$80 = CONVERT
ADDRS2F DS 1 ;2 ADDRESS ENTERED IF > $80 (ADD.ADD)


**************************************************
* Put IOSPACE routines in this space. They will be run from
* the $C080-$C08F card I/O space
**************************************************

* ---- SEG0 ROUTINES ---- *

 ERR *-1/$E0C880
 ORG $E0C880

* This first byte must be at address $C880

IOSPACE0 DS 1 ; DO NOT USE, n1 address will reset LS273
C0INT DS 1 ;PHP
 DS 2 ;MEMORY8
 DS 1 ;PHA
 DS 4 ;LDAL CXFLAG
 DS 4 ;STAL SLOTROM
 DS 2 ;JMP  SLOTINT
IOCN0 DS 1 ;        xx

****************************************

**************************************************
* TCOUNT to POINT are cleared to zero during startup. Keep them together.
**************************************************

TCOUNT DS 2 ;TRACE COUNTER
TFLAG DS 1 ;TRACE FLAG
RTBRKFLG DS 1 ;BITS:7=realtime brk, 6=1=trace user brks
REALTIME DS 1 ;NOT 0 IF REALTIME WINDOWS ARE SET
PROGONLY DS 1 ;NOT 0 IF PROG ONLY WINDOWS ARE SET
NOACCESS DS 1 ;NOT 0 IF NO ACCESS WINDOWS ARE SET
TRCBRK DS 1 ;A BRK WAS JUST TRACED
WINDFLG DS 1 ;>$80 = the windows are on
BRKWFLG DS 1 ;THE BRK WINDOW NEEDS UPDATING
PASSFLG DS 1 ;SET BY BREAK HANDLER
HALT_ALL DS 1 ;IF NEGATIVE, HARD BREAK HALTS IN ALL BANKS
COMRTFLG DS 1 ;Bit7=1=realtime active, 6=1="RT", 6=0=T range
RTstatus DS 1 ;User's I flag saved here during JSL of RT command

EFLAG DS 1 ;SET TO NON ZERO WHEN E COMMAND
GOFLAG DS 1 ;$80= GO command active
RTSFLAG DS 1 ;SET BY ES COMMAND. EXECUTE TO RTS.
EXECFLAG DS 1
TSFLAG DS 1 ;>=$80 IF COMDTS
ETFLAG DS 1 ;USED BY CALCTIME
FLAG80 DS 1

Iflag ds 1 ; ORed with STATUS in EXECUTE
PBR8 DS 1 ;program bank of 8 bit code
*DISPFLAG FORMAT

*BIT 7 = 80STORE 1=PAGE2 SWITCHES MAIN/AUX
*BIT 6 = VBL (NO USE)
*BIT 5 = TEXT 1=TEXT MODE 0=GRAPHICS MODE
*BIT 4 = MIXED 1=MIXED SCREEN 0=FULL SCREEN
*BIT 3 = PAGE2 1=PAGE2 OR AUX 0=PAGE1 OR MAIN
*BIT 2 = HIRES 1=HIRES 0=LORES
*BIT 1 = ALTCHARSET 1=ALT. CHAR ON 0=ALT. CHAR OFF
*BIT 0 = 80COL 1=80 COL 0=40 COL

DISPFLAG DS 1 ;SAVE DISPLAY SWITCHES

TRACFLAG DS 1 ;Trace active flag if = $80
BRKTRFLG DS 1 ;Tracing our real break if = $80

* MEMORY TO DISPLAY IN WINDOW
* FORMAT = PBR,HI,LOW

MEMWADR DS 12*3 ;12 LOCATIONS AT 3 BYTES EACH

EFFADRS DS 3 ;EFFECTIVE ADDRESS (LO,HI,PBR)

* MEMORY PROTECTION BUFFERS
* TYPE, PBR, (LOWER LIMIT, HI, LOW) . (UPPER LIMIT, HI, LOW)

PROTADR DS 6*6 ;6 LOCATIONS AT 6 BYTES EACH
TXSFLG DS 1 ;0=LAST INSTR. WAS NOT TXS OR TCS, (TRACEN)

BANKENT DS 1 ;used by READAD, >$7F = new bank entered
REALBRK DS 1 ;COUNT OF REAL BREAKS
* POINTS TO NEXT FREE LOCATION IN BUFFER
POINT DS 1 ;STACK POINTER FOR BREAKS
************* END INITIALIZED RAM ***************

SUPERSAV DS 1 ;Save Super Hi-Res byte
PROMPT DS 1
BASBUF DS 4 ;BASL - BAS2H BUFFER
WINDLEFT DS 1
WINDWDTH DS 1
WINDTOP DS 1
WINDBTM DS 1
CURSHORZ DS 1
CURSVERT DS 1
INVFLG DS 1
MEMHORZ DS 1 ;TEMP STORAGE FOR SCREEN POINTER, USED BY COUT

INLENGTH DS 1
MEMPBR DS 1
NUMDISP DS 1
MNEMCOMP DS 2
MFLAG DS 1
TOGOFLG DS 1 ; SET TO 0 BY DECTOGO WHEN BRKTOGO = 0
SELFMOD DS 4 ;RUN SELF MODIFING CODE FROM HERE IN SETDISP
HARDPBR DS 1 ;BANK # OF HARDWARE BREAK
RET_ADD DS 2 ;USER'S RETURN ADDRESS

TOSLOTIO DS 2 ;(JMP) to TOLDASTA in slot space
CXSTATUS DS 1 ;SAVE CXROM STATUS HERE
LOWADD DS 1
HIADD DS 1
 DS 1

*BIT 7=0=NATIVE MODE 65816,
* BIT 7=1=6502 OR 65C02 OR 65816 IN 65C02 MODE
EMULATE DS 1

STAISAV DS 1 ;STAindy uses this for temp storage

 ERR $E0C900-1/*
***************************************************************
****** These buffers MUST not cross page boundary *************

WORKSTAK EQU $000150 ;LOCATION OF WORK STACK
WSTKLGTH EQU 40 ;SIZE OF WORK STACK BUFFER
WSTKBUFF DS WSTKLGTH ;SAVE WORK STACK DATA HERE

STACKBUF EQU 15 ;SIZE OF STACK BUFFER
STKBUFM DS STACKBUF ;SAVE MAIN BANK STACK DATA HERE
STKBUFA DS STACKBUF ;SAVE AUX BANK STACK DATA HERE

* Character input buffer.
IN DS 30 ;INPUT BUFFER IN EXT RAM

*********** DDT'S VERY OWN STACK SPACE *******************
* This area is used for stack space by the DDT
* Memory shadowing must be set to allow access
*   to the peripheral card space from bank 0.
**********************************************************
 DS 30
DDTSTACK EQU *-1
 DS 2 ;buffer zone

TEMP DS 4 ;TEMPORARY STORAGE LOCATIONS

*----------------------------------------
* Save $3FB NMI & $E1/0070 BRK vectors here
V0003FB DS 3 ;NMI vector
V0103FB DS 3 ;NMI vector for AUX mem
VE10070 DS 4 ;BRK vector

DDTSPEED
 DS 1 ;save speed bit here
MODE DS 1 ;MODE OF INSTRUCTION 01 TO 0D PLUS FF

* When RESTFLAG is set it indicates the I/O routines have
* been used which disturbed the screen RAM or ZPAGE locations
RESTFLAG DS 1

BRKSTUF DS 3 ;address of BRK VARiables in GS RAM.
DDT3F8 DS 3 ;save GS ^Y vector here
TEXTCLRS DS 1 ;save text color
STFLAG DS 1 ; STep flag $80=STep mode $00=TR mode
KEY DS 1 ;Stop command key

* RAM locations $C9E6-$C9FF are reserved for vectors.

 ERR *-1/$E0C9E6
 ORG $E0C9E6

BRKLO816 DS 1 ;LOW BYTE OF 65816 BRK VECTOR
BRKHI816 DS 1 ;HI BYTE
ABORT DS 2 ;NOT USED BY EXT
NMILO816 DS 1 ;LOW BYTE OF 65816 NMI VECTOR
NMIHI816 DS 1 ;HI BYTE
RESERV16 DS 2 ;NOT USED
IRQ816 DS 2 ;NOT USED BY EXT
 DS 4 ;NOT USED
COP6502 DS 2 ;NOT USED BY EXT
RESERV02 DS 2 ;NOT USED
ABORT02 DS 2 ;NOT USED BY EXT
NMILO DS 1 ;LOW BYTE OF 6502 NMI VECTOR
NMIHI DS 1 ;HI BYTE
RESETLO DS 1 ;LOW BYTE OF RESET VECTOR
RESETHI DS 1 ;HI BYTE
IRQLO DS 1 ;LOW BYTE OF 6502 IRQ/BRK
IRQHI DS 1 ;HI BYTE

 DEND

*------------------------------
* Ram usage for SEG 1
*------------------------------

 DUM $E0C811

ACC1 DS 2 ;ACCUMULATOR
XREG1 DS 2 ;X REGISTER
TOSLOTC0 DS 2 ;(JMP) to C0n0 routines


*---------------------------------------------------
* I/O space routines
* They are run from the $C080 - $C08F card I/O space
*----------------------------------------------------

 ERR *-1/$E0C880
 ORG $E0C880

 DS 2 ; reserved
IOSPACE1
 DS 4 ; STAL $E0CFFF
 DS 2 ; STAL $E0C300
IOUSER DS 1 ;         xx
 DS 1 ;       xx
 DS 1 ; STAL $E0C0C8
IOSEGM DS 1 ;           xx
 DS 2 ;       xxxx
 DS 2 ; reserved

*----- End of IO space1 routine -----*

 DEND

*------------------------------
* Ram usage for SEG 6
*------------------------------

* Break stack pointers (valid only for RAM seg 6)
* 50 breaks maximum
* -------  SPECIAL NOTE ------------
* No group may occupy more than 1 Bank

 DUM $E0C838 ;LEAVE ROOM AT TOP OF SEG6 FOR VARIABLES

BRKTYPE DS 50 ;BREAK TYPE
BRKPBR DS 50 ;BREAK PBR (BANK #)
BRKHI DS 50 ;HI ADDRESS BYTE
BRKLOW DS 50 ;LOW ADDRESS BYTE
BRKTGHI DS 50 ;TO GO, HI BYTE
BRKTGLOW DS 50 ;TO GO, LOW BYTE
BRKPASHI DS 50 ;TIMES TO PASS, HI BYTE
BRKPASLO DS 50 ;TIMES TO PASS, LOW BYTE
BRKDATA DS 50 ;ORIGINAL DATA BYTE

 DEND

*------------------------------
* Ram usage for SEG 7
*------------------------------

 DUM $E0C811

*---------------------------------------------------
* I/O space routines
* They are run from the $C080 - $C08F card I/O space
*----------------------------------------------------

 ERR *-1/$E0C880
 ORG $E0C880

IOSPACE7
 DS 1 ; reserved
 DS 1 ; DO NOT USE, n1 address will reset LS273
 DS 1 ; reserved
 DS 1 ; STAL $E0C007
IOCX7 DS 1 ;           xx , make 06 if CXROM is off
 DS 2 ;       xxxx
 DS 1 ; LDA #ACC
IOACC DS 1 ;      xx
IORTI DS 1 ; RTI or PLP
IORTL DS 1 ; RTL {8 bit non 0 bank} or JML $FFBF7B {TOGSINT}
IOPCLO DS 1 ;          xx
IOPCHI DS 1 ;        xx
IOPBR DS 1 ;      xx
 DS 2 ; BRA TOP7

*----- End of IO space7 routine -----*

 DEND

*------------------------------
* Ram usage for SEG 8
*------------------------------

 DUM $E0C811

*---------------------------------------------------
* I/O space routines
* They are run from the $C080 - $C08F card I/O space
*----------------------------------------------------

 ERR *-1/$E0C880
 ORG $E0C880

IOSPACE8
 DS 1 ; STA C007
IOCX8 DS 1 ;       xx , make 06 if CXROM is off
 DS 1 ;     xx
 DS 1 ; XBA
IOOPCD DS 1 ; LDAL/STAL $012345,X
IOLADRS DS 1 ;                xx
IOHADRS DS 1 ;              xx
IODBR DS 1 ;            xx
 DS 3 ; STA SLOTROM
 DS 2 ; JMP SLOTRTS
IOCN8 DS 1 ;         xx
 DS 2 ; BRA TOP8

*----- End of IO space8 routine -----*

 DEND
